1. Field of the Invention
The present invention is directed to storage systems and, in particular, to managing space availability in a distributed striped volume set of a storage system cluster.
2. Background Information
A storage system typically comprises one or more storage devices into which information may be entered, and from which information may be obtained, as desired. The storage system includes a storage operating system that functionally organizes the system by, inter alia, invoking storage operations in support of a storage service implemented by the system. The storage system may be implemented in accordance with a variety of storage architectures including, but not limited to, a network-attached storage environment, a storage area network and a disk assembly directly attached to a client or host computer. The storage devices are typically disk drives organized as a disk array, wherein the term “disk” commonly describes a self-contained rotating magnetic media storage device. The term disk in this context is synonymous with hard disk drive (HDD) or direct access storage device (DASD).
A plurality of storage systems may be interconnected to provide a storage system environment configured to service many clients. Each storage system may be configured to service one or more volumes of the disks, wherein each volume stores one or more data containers, such as files and logical units. Alternatively, the volumes serviced by the particular storage system may be distributed among all of the storage systems of the environment. This configuration distributes the data access requests, along with the processing resources needed to service such requests, among all of the storage systems, thereby reducing the individual processing load on each storage system. In addition, the storage system environment may be configured to stripe a data container across a plurality of is volumes configured as a striped volume set (SVS), where each volume is serviced by a different storage system of the environment, e.g., a cluster. One technique for data container striping is described in U.S. Pat. No. 7,698,289 by Michael Kazar et al., issued on Apr. 13, 2010, entitled STORAGE SYSTEM ARCHITECTURE FOR STRIPING DATA CONTAINER CONTENT ACROSS VOLUMES OF A CLUSTER. Broadly stated, stripes of content (data) of a data container are allocated to each volume of the SVS in a manner that distributes data across the volumes of the SVS. Each stripe has a defined size/width as specified by a set of striping rules associated with the SVS.
In order to stripe a data container across multiple storage systems or nodes in the cluster, a write request directed to the data container is routed to different constituent volumes of the SVS. However, these volumes may have differing storage space capacities, and/or differing amounts of available storage space at the time the write request is received. Consequently, one constituent volume of the SVS may have the space to accommodate (i.e., process and store) a stripe of data associated with the request while another volume in the SVS may not have sufficient space to accommodate its intended stripe. Thus, there is a need to notify the nodes hosting the volumes in the SVS as to the availability of storage space within each constituent volume of the SVS in order to verify whether there is enough space for an intended striping operation. Otherwise, a write request will be rejected and forwarded elsewhere if all of the intended constituent volumes in that SVS cannot accommodate the request.
Thus, there remains a need for managing cross stripe write operation in a SVS and notifying other nodes in the cluster whether enough space is available to allow such operations.